class QuestionnairesController < ApplicationController
  
  # GET /questionnaires
  # GET /questionnaires.xml
  def index
    
    if(logged_in?)
      @user = current_user
      @lat = @user.location.x
      @long = @user.location.y
      @questionnaires = Questionnaire.find(:all,:conditions => ["MBRWithin(GeomFromText('Point(? ?)'),geom)", @lat, @long])
    else
      if(params[:company_id] == nil)
        @questionnaires = Questionnaire.all
      else
        @questionnaires = Questionnaire.of_company(params[:company_id])
      end
    end
    
    
    @questionnaires.each do |questionnaire|
      questionnaire.company
    end
    
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @questionnaires }
      format.json { render :json => @questionnaires}
    end
  end
  
  def by_location
    if(params[:lat] != nil && params[:lng] != nil)
      
    end
    
    render :partial => 'questionnaires', :object => @questionnaires
    
  end
  
  # GET /questionnaires/1
  # GET /questionnaires/1.xml
  def show
    @questionnaire = Questionnaire.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @questionnaire }
      format.json { render :json => @questionnaire }
    end
  end

  # GET /questionnaires/new
  # GET /questionnaires/new.xml
  def new
    @questionnaire = Questionnaire.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @questionnaire }
      format.json { render :json => @questionnaire}
    end
  end

  # GET /questionnaires/1/edit
  def edit
    @questionnaire = Questionnaire.find(params[:id])
  end

  # POST /questionnaires
  # POST /questionnaires.xml
  def create
    @questionnaire = Questionnaire.new(params[:questionnaire])
    geom = Questionnaire.getPolygon(params[:location])
    
    @questionnaire.geom = geom
    respond_to do |format|
      if @questionnaire.save
        format.html { redirect_to(@questionnaire, :notice => 'Questionnaire was successfully created.') }
        format.xml  { render :xml => @questionnaire, :status => :created, :location => @questionnaire }
        format.json { render :json => @questionnaire, :status => :created, :location => @questionnaire }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @questionnaire.errors, :status => :unprocessable_entity }
        format.json { render :json => @questionnaire.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /questionnaires/1
  # PUT /questionnaires/1.xml
  def update
    @questionnaire = Questionnaire.find(params[:id])
    
    respond_to do |format|
      if @questionnaire.update_attributes(params[:questionnaire])
        format.html { redirect_to(@questionnaire, :notice => 'Questionnaire was successfully updated.') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @questionnaire.errors, :status => :unprocessable_entity }
        format.json { render :json => @questionnaire.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /questionnaires/1
  # DELETE /questionnaires/1.xml
  def destroy
    @questionnaire = Questionnaire.find(params[:id])
    @questionnaire.destroy

    respond_to do |format|
      format.html { redirect_to(questionnaires_url) }
      format.xml  { head :ok }
      format.json { head :ok}
    end
  end
end
